#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<sys/stat.h>
#include<errno.h>
#include<fcntl.h>

int main(){

    int ret=mkfifo("./test.fifo",0664);
    if(ret<0){
        if(errno!=EEXIST){//排除已经存在的错误
        perror("mkfifo error");
        return -1;
        }   
    }
    printf("fifo create success!\n");
    int fd=open("./test.fifo",O_RDONLY);
    if(fd<0){
        perror("open error");
        return -1;
    }
    printf("open fifo success!\n");
    while(1){
        char buf[1024]={0};
        int ret=read(fd,buf,1023);
        if(ret<0){
            perror("read error");
            return -1;
        }
        else if(ret==0){
            printf("所有write被关闭!\n");
            return -1;
        }
        printf("%s\n",buf);
        usleep(10000);
    }
    close(fd);
    return 0;
}
